################################
#
#     Makefile BIBLIO (progetto lso 2012)
#     (fram 1)(fram 2)(fram 3)
################################

# ***** DA COMPLETARE ******  con i file da consegnare *.c e *.h     
# primo frammento                                                                                                           
FILE_DA_CONSEGNARE1=bib.c

# secondo frammento                                                                                                         
FILE_DA_CONSEGNARE2=

# terzo frammento                                                                                                          
FILE_DA_CONSEGNARE3=

# Compilatore
CC= gcc
# Flag di compilazione
CFLAGS = -Wall -pedantic -g #$(COVFLAGS)

# Librerie 
# Directory in cui si trovano le librerie
LIBDIR = ../lib
# Opzione di linking
LIBS = -L $(LIBDIR)

# Nome libreria progetto
LIBNAME1 = libbiblio.a
# Oggetti libreria $(LIBNAME1)
# DA COMPLETARE se si usano piu' file in aggiunta da dgraph.o
objects1 = bib.o

# Nome eseguibili primo frammento
EXE1=tibib
EXE2=tibib2


.PHONY: clean lib test11 test12 consegna1 docu



# creazione libreria 
lib:  $(objects1)
	-rm  -f $(LIBDIR)/$(LIBNAME1)
	ar -r $(LIBNAME1) $(objects1)
	cp $(LIBNAME1) $(LIBDIR)


# eseguibili test primo frammento
$(EXE1): test-bib.o
	$(CC)  -o $@  $^ $(LIBS) -lbiblio

$(EXE2): test2-bib.o
	$(CC)  -o $@  $^ $(LIBS) -lbiblio

test-bib.o: test-bib.c bib.h
	$(CC) $(CFLAGS) -c $<

test2-bib.o: test2-bib.c bib.h
	$(CC) $(CFLAGS) -c $<

#make rule per gli altri .o del primo frammento (***DA COMPLETARE***)



########### NON MODIFICARE DA QUA IN POI ################
# genera la documentazione con doxygen
docu: ../doc/Doxyfile
	make -C ../doc/

#ripulisce  l'ambiente
clean:
	-rm *.o


test11: 
	make clean
	make lib
	make $(EXE1)
	-rm -fr ./bibtrace.log
	MALLOC_TRACE=./bibtrace.log ./$(EXE1)
	mtrace ./$(EXE1) ./bibtrace.log
	@echo "********** Test11 superato!"

test12: 
	make clean
	make lib
	make $(EXE2)
	-rm -fr ./bibtrace.log
	cp DATA/file_bib1 DATA/file_bib2 .
	cp DATA/file_bib4.out.check.autore DATA/file_bib4.out.check.titolo .
	chmod 644 ./file_bib*
	MALLOC_TRACE=./bibtrace.log ./$(EXE2)
	mtrace ./$(EXE2) ./bibtrace.log
	diff file_bib2.out file_bib3.out 
	@echo "********** Test12 superato!"


# target di consegna del primo frammento
SUBJECT1="lso12: consegna primo frammento"
ADDRESS="susanna@di.unipi.it"

#effettua i test e prepara il tar per la consegna
consegna1:
	make clean
	make test11
	make test12
	./gruppo-check.pl < gruppo.txt
	tar -cvf $(USER)-f1.tar ./gruppo.txt $(FILE_DA_CONSEGNARE1) ./Makefile
	@echo -e "*** PRIMO FRAMMENTO: TAR PRONTO $(USER)-f1.tar ***"
	@echo -e "*** inviare per email a $(ADDRESS) con subject\n \"$(SUBJECT1)\" ***"

